package com.example.springboot.Exception;

import com.example.springboot.common.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * 功能：

 * 日期：2024/1/10 18:04
 */

// @ControllerAdvice   全局异常处理
    // 1. 统一处理异常       @ExceptionHandler(xxx.class)    捕获xxx.class类型的一切异常
    // 2. 返回json数据      @ResponseBody       将返回数据转为JSON格式
    // 3. 页面跳转
@ControllerAdvice
public class GlobalException {

    @ExceptionHandler(ServiceException.class)
    @ResponseBody
    public Result serviceException(ServiceException e){
        return Result.error(e.getCode(),e.getMessage());
    }


    @ExceptionHandler(JwtInterceptorException.class)
    @ResponseBody
    public Result JwtInterceptorException(JwtInterceptorException e){
        return Result.error(e.getCode(),e.getMessage());
    }


    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Result globalException(Exception e){
        e.printStackTrace();
        return Result.error("500","系统错误！");
    }

}
